\chapter{比特币(bitcoin) \& 区块链(block chains)}
\section{比特币起源}\footnote{此节文字来源于 \url{https://baike.baidu.com/item/中本聪}}
2008年11月1日(也有称准确的时间是2008年10月31日)，Satoshi Nakamoto(中文翻译为“中本聪”)在“metzdowd.com”网站的密码学邮件列表中发表了一篇论文，题为《Bitcoin：A Peer-to-Peer Electronic Cash System》（中文翻译为《比特币：一种点对点式的电子现金系统》）\footnote{此文章的网页版\url{https://nakamotoinstitute.org/bitcoin/}，此网页上也有此文章的中文链接。}。论文中详细描述了如何创建一套去中心化的电子交易体系，且这种体系不需要创建在交易双方相互信任的基础之上。很快，2009年1月3日，他开发出首个实现了比特币算法的客户端程序并进行了首次“采矿”（mining），获得了第一批的50个比特币。这也标志着比特币金融体系的正式诞生。\cite{baidu-bitcoin} \par
2010年12月5日，在维基解密泄露美国外交电报事件期间，比特币社区呼吁维基解密接受比特币捐款以打破金融封锁。中本表示坚决反对，认为比特币还在摇篮中，经不起冲突和争议。七天后的12月12日，他在比特币论坛中发表了最后一篇文章，提及了最新版本软件中的一些小问题，随后不再露面，电子邮件通讯也逐渐终止。\par
从发表论文以来，中本聪的真实身份长期不为外界所知，维基解密创始人朱利安·阿桑奇（Julian Assange）宣称中本聪是一位密码朋克（Cypherpunk）。另外，有人称“中本聪是一名无政府主义者，他的初衷并不希望数字加密货币被某国政府或中央银行控制，而是希望其成为全球自由流动、不受政府监管和控制的货币。”
\section{技术发展脉络}
ACM Queue在2017年发表了一篇文章“Bitcoin’s Academic Pedigree
”\footnote{ACM Queue文章不需付费，此文章下载地址为\url{https://queue.acm.org/detail.cfm?id=3136559}，在网上有这篇文章的中文译稿，大家可以参考阅读，地址为\url{https://blog.csdn.net/tangxiaoyin/article/details/80131400}}，此文章对比特币的技术发展脉络进行了梳理(\ref{bitcoin-chronology})。
并按一下组织方式进行了基本概念的说明：
\begin{enumerate}
	\item ledger(账本)
	\begin{enumerate}
		\item Linked timesstamping(时间戳链)
		\item Merkle trees(默克尔树)
		\item Byzantine fault tolerance(拜占庭容错)
	\end{enumerate}
	\item Proof of work(工作量证明)
	\begin{enumerate}
		\item The origins(概念起源)
		\item hahscash(哈希现金)
		\item proof of work and digital cash:A catch-22(工作量证明和数字现金：左右为难)
	\end{enumerate}
	\item putting it all together(集成)
	\begin{enumerate}
		\item public keys as identities(公钥作为身份)
	\end{enumerate}
\end{enumerate}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.7\textwidth]{chronology-bitcoin.png}
	\caption{比特币技术发展脉络}
	\label{bitcoin-chronology}
\end{figure}


\section{比特币}


从比特币的本质说起，比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能得到有限个解中的一组。而每一个特解都能解开方程并且是唯一的。以钞票来比喻的话，比特币就是钞票的冠字号码，你知道了某张钞票上的冠字号码，你就拥有了这张钞票。而挖矿的过程就是通过庞大的计算量不断的去寻求这个方程组的特解，这个方程组被设计成了只有 2100 万个特解，所以比特币的上限就是 2100 万个。 [5] 
要挖掘比特币可以下载专用的比特币运算工具，然后注册各种合作网站，把注册来的用户名和密码填入计算程序中，再点击运算就正式开始。完成Bitcoin客户端安装后，可以直接获得一个Bitcoin地址，当别人付钱的时候，只需要自己把地址贴给别人，就能通过同样的客户端进行付款。在安装好比特币客户端后，它将会分配一个私钥和一个公钥。需要备份你包含私钥的钱包数据，才能保证财产不丢失。如果不幸完全格式化硬盘，个人的比特币将会完全丢失。
\footnote{\url{https://baike.baidu.com/item/区块链}} \par

可以说比特币的整个实现就是建立在已有的甚至存在多年的计算机科学领域里的技术或概念的整合，其中哈希算法在比特币中的应用几乎是方方面面，主要包括SHA256和RIPEMD160，比特币将这两个哈希算法的应用组合成两个函数：hash256(d)=sha256(sha256(d))和hash160(d)=ripemd160(sha256(d))，其中d为待哈希的字节数组，两者分别生成256位（32字节）和160位（20字节）的16进制数值。hash256主要用于生成标志符，如区块ID，交易ID等，而hash160主要用于生成比特币地址。

对于hash160比较认同的答案是ripemd160可以使得生成的地址更短，但是只做ripemd160一次哈希可能会存在安全漏洞所以同时使用sha256起到安全加固；至于hash256使用两次sha256哈希算法的原因来源于sha1算法，由于一次sha1哈希存在被生日攻击（birthday attack）的风险，所以当使用sha1运算时一种有效方式就是做两次sha1哈希，sha256本身并不存在生日攻击漏洞，但是防御性的使用两次sha256哈希借鉴于sha1.\footnote{\url{https://zhuanlan.zhihu.com/p/31961153}}

\section{其他数字货币或虚拟货币}
比特币是中本聪在2009年设计开发，以开源的方式发布，并在此软件的基础上构建P2P网络，形成的一种P2P形式的虚拟货币。\par
后来又有很多采用相同思想发布的虚拟货币，下面两张图(图\ref{baidu-virtual-cash-list}, 图\ref{BTC123-virtual-cash-list})是用搜索引擎获得两个页面，以此来说明现在已经出现了很多了类似于比特币的虚拟货币，严格意义上来讲，比特币应该是指中本聪发起的虚拟货币，但是现在很多场合比特币成为了虚拟货币或者数字货币的代名词，但这种替换应该以不引起歧义为前提。

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.7\textwidth]{baidu-virtual-cash-list.png}
	\caption{百度百科上的数字货币\footnote{\url{https://baike.baidu.com/item/比特币}}}
	\label{baidu-virtual-cash-list}
\end{figure}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.7\textwidth]{BTC123-virtual-cash-list.png}
	\caption{BTC123网站上列出的数字货币(部分)\footnote{\url{https://www.btc123.com/currency/}}}
	\label{BTC123-virtual-cash-list}
\end{figure}


\section{区块链(block chains)}
通常人们都认为区块链是和比特币的概念一起提出的，但是阅读中本聪的原始论文你会发现，论文中根本没有提及“区块链”这个概念，而是后来大家用来指代与比特币及其账本类似系统的一个宽泛术语。\par
我国于2016年10月18号，在北京成立“中国区块链技术和产业发展论坛”\footnote{论坛网址\url{http://www.cbdforum.cn/bcweb/}}，论坛由中国电子技术标准化研究院、蚂蚁金服、万向、微众银行、平安集团、乐视联服、万达网络、用友、三一集团、海航科技等国内从事区块链的重点企事业单位构成。该论坛一个主要工作是编写区块链的相关标准，其于2017年5月16日，发布首个区块链标准《区块链 参考架构》，其对区块链的概念定义链为：
\begin{enumerate}
	\item 区块链(blockchain):一种在\textbf{对等网络}环境下，通过透明和可信规则，构建不可伪造、不可篡改和可追溯的\textbf{块链式数据结构}，实现和管理事务处理的模式。(注：事务处理包括但不限于可信数据的产生、存取和使用等。)
	\item 对等网络(peer-to-peer network):一种仅包含对控制和操作能力等效的节点的计算机网络。[GB/T 5271.18-2008]
	\item 块链式数据结构(chained-block data structure):一段时间内发生的事务处理以区块为单位进行存储，并以密码学算法将区块按时间顺序连接成链条的一种数据结构。
\end{enumerate}

NIST对Blockchain的定义或者说简要描述为\footnote{此信息来源于\url{https://www.nist.gov/topics/blockchain}}:\par
Blockchain represents a new paradigm for digital interactions and serves as the underlying technology for most cryptocurrencies.\par  
A blockchain is a collaborative, tamper-resistant ledger that maintains transactional records. The transactional records (data) are grouped into blocks. A block is connected to the previous one by including a unique identifier that is based on the previous block’s data. As a result, if the data is changed in one block, it’s unique identifier changes, which can be seen in every subsequent block (providing tamper evidence). This domino effect allows all users within the blockchain to know if a previous block’s data has been tampered with. Since a blockchain network is difficult to alter or destroy, it provides a resilient method of collaborative record keeping.\par
NIST researchers have been investigating blockchain technologies at multiple levels: from use cases, applications and existing services, to protocols, security guarantees, and cryptographic mechanisms. Research outcomes include scientific papers and the production of software for experimentation as well as providing direction for other NIST endeavors in this space. Blockchain has the potential to be implemented in many different systems, to include manufacturing supply chains, data registries, digital identification, and records management. \par
\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.9\textwidth]{nist-blockchain.png}
	\caption{NIST区块链示意图}
	\label{nist-blockchain}
\end{figure}

虽然区块链的概念产生晚于比特币，但是由于其应用场景更加宽泛，所以比特币反而成了区块链的一种应用，或者是区块链技术在特定场景下的具体应用。